package com.ruoyi.system.service;

import java.util.List;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.domain.FxyFinancialVoucher;
import com.ruoyi.system.domain.reqvo.Params;
import com.ruoyi.system.domain.reqvo.VoucherReqVO;
import org.springframework.stereotype.Service;

/**
 * 凭证Service接口
 * 
 * @author ruoyi
 * @date 2025-01-13
 */

public interface IFxyFinancialVoucherService 
{
    /**
     * 查询凭证
     * 
     * @param id 凭证主键
     * @return 凭证
     */
    public FxyFinancialVoucher selectFxyFinancialVoucherById(Integer id);

    /**
     * 查询凭证列表
     * 
     * @param fxyFinancialVoucher 凭证
     * @return 凭证集合
     */
    public List<FxyFinancialVoucher> selectFxyFinancialVoucherList(Params params);

    /**
     * 新增凭证
     * 
     * @param fxyFinancialVoucher 凭证
     * @return 结果
     */
    public int insertFxyFinancialVoucher(FxyFinancialVoucher fxyFinancialVoucher);

    /**
     * 修改凭证
     * 
     * @param fxyFinancialVoucher 凭证
     * @return 结果
     */
    public int updateFxyFinancialVoucher(FxyFinancialVoucher fxyFinancialVoucher);

    /**
     * 批量删除凭证
     * 
     * @param ids 需要删除的凭证主键集合
     * @return 结果
     */
    public int deleteFxyFinancialVoucherByIds(Integer[] ids);

    /**
     * 删除凭证信息
     * 
     * @param id 凭证主键
     * @return 结果
     */
    public int deleteFxyFinancialVoucherById(Long id);

    AjaxResult insertVoucherList(VoucherReqVO voucherReqVO) throws JsonProcessingException;

    int examine(Params params);

    int ReExamine(Integer[] ids);

    int Cancellation(Integer[] ids);

    int renew(Integer[] ids);

    AjaxResult selectVoucherById(Params params) throws JsonProcessingException;
}
